Original Question: Thanks for the help with changing the legend text in a layout. I have another question related to creating a layout. As part of my script, the user enters a Facility Name in a MsgBox. This name is then displayed on the layout. I would like the Facility Name to be centered on the layout, but my script isn't doing this. Below is my code. Thanks again! - Andrea Newman theLayoutDpy = theLayout.GetDisplay thePointOrigin = theLayoutDpy.returnMarginExtent.ReturnOrigin RectH = (theLayoutDpy.returnMarginExtent.GetHeight - 0.7) RectW = (theLayoutDpy.returnMarginExtent.GetWidth/2) fTitle = GraphicText.Make theName,thePointOrigin+Point.Make(RectW,RectH)) fTitle.SetAlignment(#TEXTCOMPOSER_JUST_CENTER) theTextSymbol = pTitle.ReturnSymbols.Get(0) theTextSymbol.SetSize(36) newFont = Font.Make("Arial","Bold") theTextSymbol.SetFont(newFont) theTextSymbol.SetColor(Color.GetBlack) theLayout.GetGraphics.Add(fTitle) Solution: Andrea, The following script will center a text string. It is called from another script which passes the layout name, the text string to be used, and a y-coordinate, something like this: av.Run("Util.CenterTextHorizontal",{theLayout.GetName,subTitle,754.60}) This was developed to work with an HP Inkjet printer, so it will probably be necessary to rewrite it slightly to use the correct y offset for your application and hardware. '---Util.CenterTextHorizontal--- 'calling program passes a string, a y coordinate, name of layout as elements of a list 'the x calculated by the script is assumed to be centered between the margins. argList = SELF lo_name = argList.Get(0) strg = argList.Get(1) yPt = argList.Get(2) theLayout = av.FindDoc(lo_name) theDisp = theLayout.GetDisplay theDisp.SetGridActive(false) grList = theLayout.GetGraphics 'find the width of the page and the x-origin p_margins = theDisp.ReturnMarginExtent x_left = p_margins.ReturnOrigin.GetX p_width = p_margins.GetWidth p_centerX = x_left + (p_width / 2) 'center of x dimension of page 'find the graphic for the specified text string for each gr in grList if (gr.GetClass.GetClassName = "GraphicText") then 'use .GetText request to test text string if (gr.GetText = strg) then theTxt = gr else continue end 'if end 'if end 'for each 'move the text string to the new position txt_width = theTxt.GetBounds.GetWidth / 2 newPt = Point.Make((p_centerX - txt_width),yPt) theTxt.SetOrigin(newPt) theLayout.Invalidate '---end of script--- Hope this is helpful. Regards, Mary Howes Iowa DNR